Image matching is a fundamental technique for applications such as computer vision, object recognition, motion tracking, and three-dimensional modeling. Image matching is performed to determine whether two images represent the same content, even though those images may not be exactly the same. For example, the content in one image may be rotated or taken from a different viewpoint as compared to the content in another image, may be a zoomed version of the other image, or may have been taken under different lighting conditions. Conventional image matching algorithms find discriminative regions or “patches” of an image using a keypoint detector. A feature descriptor is used to describe the patch in a way that is robust to illumination changes, rotations, and viewing angle. Feature descriptors thus enable a determination that image patches from two different images include views of the same content, despite differences in the patches pixel values due to conditions under which the scene was imaged. Since this is such a fundamental operation, it is important to make this process as efficient as possible.